package com.hyperion.blog.service;

import com.hyperion.blog.dao.pojo.SysUser;
import com.hyperion.blog.vo.LoginUserVo;
import com.hyperion.blog.vo.UserVo;

/**
 * @author Hyperion
 */
public interface SysUserService {

    /**
     * 通过 authorId 找作者名
     *
     * @param authorId 作者名
     * @return 作者名
     */
    SysUser findAuthorByAuthorId(Long authorId);

    /**
     * 通过账号密码查找账号
     *
     * @param account  账号
     * @param password 密码
     * @return 用户信息
     */
    SysUser findUser(String account, String password);

    /**
     * 通过账号查找账号
     *
     * @param account 账号
     * @return 用户信息
     */
    SysUser findUserByAccount(String account);

    /**
     * 通过 authorId 找作者信息
     *
     * @param authorId 作者名
     * @return 作者名
     */
    UserVo findUserVoById(Long authorId);

    /**
     * 通过 token 查找账号
     *
     * @param token 用户加密信息
     * @return 用户信息
     */
    LoginUserVo getUserInfoByToken(String token);

    /**
     * 注册用户，往数据库增加信息
     *
     * @param sysUser 用户数据
     */
    void saveUser(SysUser sysUser);

}
